經過前兩天的安裝與設定,我們已經可以用 Express 連接 MySQL 資料庫。
接下來我們要來學學怎麼 讀取/新增/刪除/修改,
也就是大家口中常提到的 CRUD (Create/ Read/ Update/ Delete) 。
在這之前我們講解一下 SQL 語法讓大家有個基本的概念。
不知道大家有沒有發現,昨天已經不小心偷跑了兩個 SQL 語法 → 新增和讀取。
Create (新增, INSERT INTO 語法)
使用 INSERT INTO  TableName  (column1, column2, ...) VALUES(value1, value2,...)  → 用來新增該資料表某一筆資料。
    INSERT INTO `booktest` (`bookName`) VALUES
    ('testBook')
    -- 在 booktest 的資料表新增欄位 `bookName` 為 'testBook' 的資料
Read (讀取, SELECT 語法)
使用 SELECT * FROM  TableName → 用來讀取該資料表的所有資料。
    SELECT * FROM `booktest`
    -- 讀取 booktest 資料表的所有資料
Update (修改, UPDATE 語法)
使用 UPDATE  TableName SET  column1=value1, column2=value2, ...  WHERE'符合的條件' → 用來更新該資料表符合條件的欄位資料。
    UPDATE `booktest` SET `bookName` = 'testBook1' WHERE id = 1
    -- 將 booktest 資料表 id = 1 的 bookName 欄位資料改為 'testBook1'
Delete (刪除, DELETE FROM 語法)
使用 DELETE FROM  TableName  WHERE  '符合的條件' → 用刪除該資料表符合條件的資料。
    DELETE FROM `booktest`  WHERE id = 1
    -- 將 booktest 資料表 id = 1 的資料刪除
我們再回過頭來看一下昨天的測試語法,
    // config\mysqlConnection.js
    // simple query
    const [rows, fields] = await connection.query('SELECT * FROM `booktest`')
咦? 是不是只要把我們的 SQL 直接寫在 connection.query() 裡面就好了呢?
看樣子好像是這樣,我們再下幾個指令試試看:
    // config\mysqlConnection.js
    
    const mysql = require('mysql2/promise')
    async function mysqlConnection() {
      try {
        // 建立與數據庫的連接
        const connection = await mysql.createConnection({
          host: 'localhost',
          port: 3306,
          user: 'root',
          database: 'book',
          password: '${密碼}'
        })
      // query database
      const [rows1, fields1] = await connection.query('INSERT INTO `booktest` (`bookName`) VALUES ("testBook")')
      console.log(rows1)
       // query database
       const [rows2, fields2] = await connection.query('UPDATE `booktest` SET `bookName` = "testBook1" WHERE id = 1')
       console.log(rows2)
        // query database
      const [rows3, fields3] = await connection.query('SELECT * FROM `booktest`')
      console.log(rows3)
      
        // 關閉連接
        connection.end()
      } catch (error) {
        console.error('連接數據庫時出現錯誤:', error)
      }
    }
    mysqlConnection()
像昨天一樣先在終端機下 cd config,
再下 node mysqlConnection.js 指令,測試看看有沒有我們預期應該出現的資料。

看樣子原本 id  為 1 的 testBook 有修改成功為 testBook1,也順利地加入一個新資料!
是不是有點很有趣呢?
明天我們可以結合前幾天做的路由來實際實作看看。
參考資料: